﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CloudPms.Logic.Business
{
    /// <summary>
    /// 结账策略抽象基类
    /// <para>--------------------------</para>
    /// <para>@Author: cnalexi@gmail.com</para> 
    /// <para>@Modify: 2012/10/22</para> 
    /// <para>@Create: 2012/7/25</para> 
    /// </summary>
    public abstract class CheckBillStrategyBase
    {
        /// <summary>
        /// 主账单ID
        /// </summary>
        public string AccountId { get; set; }

        /// <summary>
        /// STEP 1: 数据预处理(事务外)
        /// </summary>
        public abstract void DataPreProcess();
        /// <summary>
        /// STEP 2: 调用外部接口预处理(事务外)
        /// </summary>
        public abstract void InterfaceOutside();
        /// <summary>
        /// STEP 3: 执行结账操作(事物内)
        /// </summary>
        public abstract void CloseBill();
        /// <summary>
        /// STEP 4: 调用外部接口完善数据(事务外)
        /// </summary>
        public abstract void CompleteProcess();

    }
}
